Side Stories - Battle Commands
Battle Commands There's a lot involved in creating a battle... Unfortunately, it's not just 'Slime Girl - Fight!'... When creating a battle, you're responsible for everything. Yeah, it makes sense to be responsible for everything, but you'd think it'd already be there... you know, you're just creating a side story... That said, there are only two actual battle commands, neither of which have options. Everything is set up in variables that you set in the story.ini file. You cannot have more than one battle in a single story.ini file. P.S. Spin-off battles are very different in the original MGQ3 and in the Rogue's patch. Sections and keys added by Rogue are italic and underscoped. battle The battle command initiates the battle sequence. At this point, the battle hasn't actually started, but sprites have displayed, critical settings are loaded, etc. After issuing the battle command you can have your monster talk. : 0 = "name,Luka " : 1 = "do de do de do.... " : 2 = "walkin' through the forest... do do do... " : 3 = "battle" : 4 = "name,Slime Girl " : 5 = "He-he, hey there cutie. " : 6 = "How about I slime you, real good " : 7 = "name,Luka " : 8 = "... um... well, that sounds alright... but... Ilias... " : 9 = "I... I can't..." : 10 = "battle_st" Anyway, that's an example... Anything that you write between the battle command and the battle_st command is battle intro speak. You can do whatever you want, you can write hundreds of lines or you can write nothing. Your choice... battle_st At line 10, there's battle_st... that's the actual start of the battle. Once you've run that command the battle will start... You're going to need to have all of your settings done before that... The reason you can only have one battle in one story.ini file is because of the settings and how they work. There's no ability to duplicate them successfully within the same story.ini as they're all listed under chapter headers. Since there's no initiation to battle, you can't break it into separate areas. for example - you can't say '1 = "battle,SlimeGirl " and have it pick specific items for a specific battle set... It's still possible to have multiple battles within a side story, just not within the same story.ini. Using the Restart Command you can include as many story.ini files as you'd like... :) To do this, you must use sub folders... your folder structure will look a little bit like this... sidestory\ sidestory\section1\ sidestory\section2\ sidestory\battle1\ sidestory\battle2\ additionally you can use the restart method to extend / organize your story... :) battle settings The battle settings are passed through specific subs / chapters in your side story. This is why you're only able to have one battle per story.ini file. It's unfortunate, 'cause it could have set up with a single option. Anyway, doesn't matter. That's the way it is, so play by the rules, right? You'll need the sections data, sel, anno, ondari, victory and lose. Below is a list of the settings you set in each of these areas as well as what they do. I will work on this over the next few days, keep an eye open, it'll all be explained in time... :) It should be noted that I'm adding to this section as I figure it out (and get it written); in some cases there may be things that are explained wrong; for that I apologize and request your knowledge, if you see something that's wrong, let me know and I'll fix it... I intend to have this fully written within a week or so; but never know, so many things in life don't go according to plan, so - well... we'll see... Beyond that, I will not be posting this in a sensible order, though as I add more I will try to sort it properly... I'm mainly stating that because the next section that I'm adding is dependent on a section I've not yet added... Hence the dilemma, and if its happening now it may happen again... 'data' : name = "Slime Girl" // monster girl's name : tatie1 = "slime_st01" // normal pic : tatie2 = "slime_st02" // strong pic : tatie3 = "slime_st03" // weak pic : tatie4 = "slime_st02" // bind pic :* The pictures are got from the .NSA archive by default. You can use custom images, to do so - use filename with the extension as the tatie1 argument. Example: tatie1="qbeS.png" (Cecil Adventures). Supported extensions are .bmp, .jpg and .png. Warning: if you have used the custom tatie1 image - others 3 must be custom too. : haikei = "bg004" // battle background :* You can use custom backgrounds. The method is same as for tatie1. : monster_x = "244" // monster x offset : monster_y = "80" // monster y offset : hp = "30" // monster hp : keigen = "100" // Enemy Defense Multiplier (in percent) : earth_keigen = "0" // Gnome defence bonus for Hero (in percent) :* As the example, with keigen=60 your's damage will be 60% of nominal. With earth_keigen=30 enemy's damage will be (100-30%)=70% of nominal. Earth_keigen is working only with Breath of the Earth and Wild Lands. : kaihi = "95" // Hero's "to hit" rate (in percent) :* Higher the number the higher your chance to hit. : music = "1" // music type (1 to 12) :* 1 - Normal Battle :* 2 - Boss 1 :* 3 - Boss 2 :* 4 - Four Heavenly Knights :* 5 - Monster Lord Battle :* 6 - Comical :* 7 - Luka (Angry) :* 8 - Boss 3 :* 9 - Angel Battle :* 10 - Four Spirits Battle :* 11 - Four Spirits :* 12 - Tamamo :* You can also use custom music. To do this - just use the filename as the argument. Example: music="myfight.ogg". You must use filename with the extension or the game will crash. Supported formats are .mp3, .ogg and .wav. : type = "0" // battle start method :* 0 = normal (plays Battlestart music, print "... appeared!") :* 1 = in-story mode (no Battlestart music, no "... appeared!") : vic_effevt = "0" // victory effect for an enemy :* 0 = normal / sealed effect :* 1 = don't disappearing :* 2 = angel annihilation : alice_skill1 = "100" // Omega Blaze effectiveness (in percent) : alice_skill2 = "100" // Frost Ozma effectiveness (in percent) : alice_skill3 = "100" // Monster Lord’s Cruelty effectiveness (in percent) :* Warning: Alice command in battle selections is enabled in ruka section. 'ruka' : This section sets Hero's parameters : name = "Luka" // Hero's name : lv = "1" // Hero's level (1-99). :* Hero's maximum HPs and SPs are level dependant. : hp_minus = "0" // HP penalty : sp_minus = "0" // SP penalty :* You can start battle not with the maximum HP/SP value to simulate wound/ambush. : tukix = "0" // crosshairs x position. :* All skills have visual effects. With this variable you can aim this effect to exact point so the effect will hit the monster's sprite. : alice = "0" // Alice's Word of Dispel availability. : skill = "18" // Hero's skills (0-22). :* Standard skills tree ("human"): ::: 0''' - no skills. ::: '''1 - +Demon Decapitation. ::: 2''' - +Flail Wildly. ::: '''3 - +Thunder Thrust. ::: 4''' - +Meditation. ::: '''5 - +Demon Skull Beheading. ::: 6''' - Death Sword Chaos Star replaces Flail Wildly. ::: '''11 - Lightning Sword Flash replaces Thunder Thrust. ::: 12 - Earth Rumbling Decapitation replaces Demon Skull Beheading. ::: 14 - Serene Demon Sword replaces Demon Decapitation. ::: 15 - +Quadruple Giga. ::: 16 - Vaporizing Rebellion Sword replaces Death Sword Chaos Star. ::: 17 - Seal mode. Same as ruka/skill=6. ::: 18 - Seal mode + Serene Mind. :* With ruka/skill more than 18 you have another skills tree ("angelic"). ::: 19 - You have Flash Kill, Heavenly Demon Revival, Ninefold Rakshasa, Daystar and Meditation. Plus there are Fallen Angel Dance and Serene Mind, but you can remove these two skills if you set correct spirit levels. ::: 20 - Element Spica replaces Fallen Angel Dance. ::: 21 - Quadruple Giga replaces Serene Mind. :* Edging is always available. : skill_wind = "5" // Sylph's level (0-5). : skill_earth = "5" // Gnome's level (0-5). : skill_aqua = "5" // Undine's level (0-5). : skill_fire = "5" // Salamander's level (0-5). :* There are 2 Spirits tree: human and angelic. The second one is used if ruka/skill is more than 18. Unfortunatedly spirits are controlled differently in each case. :* "Human mode" :: There are 4 valid skill_wind/earth/aqua/fire values. ::: 0''' - spirit level 1. ::: '''2 - spirit level 2. ::: 3''' - spirit level 3. ::: '''4 or more - no spirit. Use this if you can't get the wanted spirits configuration with ruka/skill alone. As the example, ruka/skill=8, ruka/skill_wind=4 and ruka/skill_earth=3 will made avaiable Gnome level 3 only. ::* You need the certain ruka/skill value to use spirits. Sylph - ruka/skill must be more than 6, Gnome - more than 7, Undine - more than 9, Salamander - more than 12. ::* If ruka/skill is less than 6 and more than 16 - Spirits menu isn't selectable at all. ::* In "human" mode you need ruka/skill more then 8 to use Sylph and Gnome simultaneously. Unfortunatedly Wind Wall and Strength of the Earth still cancels all others spirits. :* "Angelic" mode :: There are 4 valid skill_wind/skill_aqua values in this mode. ::: 0''' - no spirit. You have Fallen Angel Dance (skill_wind=0) and Serene Mind (skill_aqua=0). ::: '''2 or 3''' - no spirit, no Fallen Angel Dance or Serene Mind. ::: '''4 - spirit level 4. You can't summon multiple spirits. ::: 5''' - spirit level 5. You can summon multiple spirits. ::* There is no difference between 0, 2 or 3 for skill_earth and skill_fire. ::* You can set each spirit level independently. ::* Warning: you must have ruka/skill_earth more than 0 to activate Spirits page in the "angelic" mode. ::* Warning: Sylph and Undine if they are level 4 or 5, will automatically remove Fallen Angel Dance and Serene Mind. :* Quad Spirits Summon is controlled by ruka/skills. If ruka/skills more than 21 then you have this skill. anno :The anno section is for battle descriptions, 'annotations'. There are 2 sections, mogaku (bind) and vic (victory). :'''mogaku_anno1 = "Luka couldn't shake free from the Slime! " :* Used if failed to escape from bind. :mogaku_anno2 = "Luka shook free of the Slime! " :* Used if successfully escaped from bind. :mogaku_anno3 = "The Slime is around Luka's foot, preventing him from moving! " :* Used if attack fails due to bind. :mogaku_anno4 = "" :* Used if you break a special bind (when you must attack to free, not struggle). :vic_anno1 = ">Ahh! Stop it! Meanie!" :vic_anno2 = "The Slime girl runs away." :* Used when you win. The second line is optional. 'onedari' :The onedari section specifies requestable techniques. It's pretty easy to use, though there are some things that can cause issues for your side story should you do them wrong. :The only really important part is that skill_name for your enemy attack is written exactly the same was as the onedari_list index of it. If it's not, the battle sequence will lock the user in the request window if they click the invalid request index, until they select one that is valid. If there aren't any, well that's not going to work at all. :You don't need to have all of the attacks requestable, but you can have up ot 16 indexed under the onedari section. :onedari :onedari_list1 = "Slime Tentacle" :onedari_list2 = "Slime Handjob" :onedari_list3 = "Slime Heaven" :* Items in the list appear on the request menu, top to bottom, left to right. More pages are added if needed. :* list formatting is from onedari_list1 to onedari_list16 'sel' :The sel group is used to list text / script that the monster will say during the battle. It's select dialog for select situations, though I'm not entirely sure that sel stands for select, it does fit fairly well... :P.S. All lines are optional. If you define 2 lines (except mogaku_selX) - you will see both. If you define the first line and the second will be undefined - you will see only 1 string. If both lines are undefined - there is no enemy's message at all. : mogaku_sel1 = "Haha, it's no use! " : mogaku_sel2 = "Haha, What are you doing? How pathetic! " : mogaku_sel3 = "Haha, useless struggling... How embarrassing! " : mogaku_sel4 = "It isn't so easy to break free from me, you know! " : mogaku_sel5 = "It's useless to struggle, just give in! " :* Mogaku_selX is what the monster says when you attempt to escape a bind. Assuming you fail. There are 5 possible entries, though you don't need to use them all. :* One of the lines you enter will be randomly selected, if you use all 5 there will be a 20% chance that a specific line will be used. You can duplicate lines however to set higher chances of it being said, or specific odds if you only want to use 2 but have a higher chance of saying one over the other. : mogaku_dassyutu1 = "Aww... " : mogaku_dassyutu2 = "Just submit to me already... " :* Mogaku_dassyutuX are told by monster when Luka breaks free from the bind. : mogaku_earth_dassyutu1 = "You... no, you used the powers of earth!" : mogaku_earth_dassyutu2 = "Gnome may have saved you this time, but I'll still get you..." :* mogaku_earth_dassyutu1 and 2 are the same as mogaku_dassyutu1 and 2, except that they're used when you're using Gnome. Usually they'll reference the extra power you're using... : half_s1 = "Ohoho... it doesn't look like you can hold out much longer. " : half_s2 = "Hehehe, just let it out already! " :* half_sX are said when Luka reaches half health. : kiki_s1 = "Ahaha, it's over for you! " : kiki_s2 = "Haha! Just a little bit more! " :* kiki_sX are said when Luka's health reaches 20% : vic_sel1 = "Fufu... I made it in time. " : vic_sel2 = "I wasn't even touching your member when you came... how pathetic! " :* vic_selX are said when monster defeats Hero. : kousan1 = "Hehe, so you want to reach a heaven of pleasure then, do you? " : kousan2 = "Alright, I'll make sure to play with you plenty! " :* kousanX is spoken by monster if Luka surrenders. ''hero_skillX These sections define Hero's text when one of skills are used. Warning: Currently you must define all 3 variables or there is a chance for no text at all. These sections are supported in the Rogue's patch only (because in the original MGQ3 you always Luka). * hero_skill1 - Demon Decapitation. * hero_skill2 - Flail Wildly. * hero_skill3 - Thunder Thrust. * hero_skill5 - Demon Skull Beheading. * hero_skill6 - Death Sword Chaos Star. * hero_skill7 - Sylph summon (level 1-3). * hero_skill8 - Gnome summon. * hero_skill10 - Undine Summon (level 1-3 and 5). * hero_skill11 - Lightning Sword Flash. * hero_skill12 - Earth Rumbling Decapitation. * hero_skill13 - Serene Demon Sword. * hero_skill14 - Salamander summon. * hero_skill16 - Vaporizing Rebellion Sword. * hero_skill17 - Edging. * hero_skill18 - Serene Mind (and Undine level 4). * hero_skill19 - Flash Kill. * hero_skill20 - Ninefold Rakshasa. * hero_skill21 - Heavenly Demon Revival. * hero_skill22 - Daystar. * hero_skill23 - Fallen Angel Dance (and Sylph level 5). * hero_skill21 - Element Spica. : Meditation, Quadruple Giga and Sylph level 4 don't have custom announcements. Quad Spirit Summon currently uses hero_skill7 announcements. : 'skill_sel1' = "I'll kill you in one blow!" // 1st variant : 'skill_sel2' = "Prepare yourself, monster!" // 2nd variant : 'skill_sel3' = "Hyaaaa!!" // 3rd variant 'Monster Girl Skills' The skills section is very extensive, most of it can be left out and ignored... That said, it's good to know how it works... :) I will continue to explain this section as I get through it myself... There are 4 types of enemy skills in Spin-off stories. And 4 skill queries. *'skilla1-skilla8''' - these skills are used if Hero isn't binded. *''skilltame0-skilltame1'' - charged attack. Must be guarded to avoid. Skilltame0 is the preparation phase, skilltame1 is the attack itself. Odds are calculated after skilla8. Rogue's patch only. *''skillcounter0-skillcounter1'' - enemy's counter. Skillcounter0 is the counterstance, skillcounter1 is the counter itself. Odds are calculated after skilltame0. Rogue's patch only. *'skillb1-skillb4' - these skills are used if Hero is binded. *'skillc1-skillc4' - the second binding query, used if hero is binded. *'skilld1-skilld4' - the OHKO query. If these skills are started - they are used constantly and hero just passes turns. Until hero loses. (GC345: broken in the Rogue's patch, I will fix this) About skill odds. #The game gets 1 RNG value between 1 and 100. #First skill in the query (skilla1, skillb1, skillc1 or skilld1) is selected as the skilltag. #If the odds (defined in skilltag/skill_kakuritu) are less or same as this RNG value - enemy try to use this first skill. #This may fail due to the skill cooldown timer (defined in skilltag/skillcount). #Odds of the first skill are substracted from the RNG value. #The next skill in query is selected. If there is no skills left - go to the 1 and get the new RNG value. #Go to the 3. *So, skill odds are skill_kakuritu divided to the total_query_kakuritu (sum of odds of all skills in the query). * Warning: try to set total_query_kakuritu must be less than 100 or some skills can't be selected. *Warning: you must have 1 skill in the query w/o cooldown. Or there can be infinite loop if all skills in query are cooldowned. 'skilla1' note: I'm describing skilla1, however skilla2 - skilla8 work exactly the same way. note: a little bit of awesomeness... you can apparently use @ and \ (pause and clear text) in these. : skill_name = "" :* The name of the skill :* Skill name does not appear if left blank. : skill_kakuritu = "40" :* odds of usage. : skill_count = "3" :* once used, the skill cannot be reused for 3 more turns (or whatever you set) : skill_sel1 = "" : skill_sel2 = "" : skill_sel3 = "" :* skill_sel1, 2 and 3 are displayed when the skill is used. They are displayed as the monster talk (there will be the monster girl name in the nametag). :* The game randomly selects which line is used. : skill_kouka = "" :* Additional effect of this skill (status / bindng / etc) :** 0 - none :** 1 - HP drain. :** 2 - abnormal status. :** 3 - binding method 1. :** 4 - binding method 2. :** 5 - lead to OHKO. :** 6 - level drain. : skill_ct1 = "" :* cut scene graphic - displayed when the skill is used : skill_ct2 = "" :* cut scene graphic 2 - when Luka ejaculates by this technique : skill_ctx = "" :* cut scene offset X coordinate : skill_cty = "" :* cut scene offset Y coordinate : skill_anno1_1 = "" : skill_anno1_2 = "" : skill_anno1_3 = "" :* This is a little confusing... well, not really... :** If you only use the skill_anno1_1 (and don't list skill_anno1_2 and skill_anno1_3) then it will be selected and printed in conjunction with the first attack of this skill. :** If you use skill_anno1_1 and skill_anno1_2, but not skill_anno1_3; both skill_anno1_1 and skill_anno1_2 will be displayed. You can use @ to pause mid sentence or between lines. \ also seems to work in this context. :** If you use all of them (skill_anno1_1, skill_anno1_2, and skill_anno1_3) it will select one of them at random. : skill_se1 = "" :* this references the sound effect played during the attack. :** if you're using a sound effect included with the game (in the SE folder) just list it by name (ie: ero_slime1) :** if you're using a custom sound effect, reference by folder and name+extension (ie: sounds\mySound.ogg) :*** compatible audio formats are wav, mp3 and ogg. : skill_aqua = "" :* odds (in percent) that Undine will block this attack : skill_wind = "" :* odds (in percent) that Sylph will block this attack. : skill_windanno = "" :* text that appears when Sylph blocks this attack (Sylph blocks it with a gust of wind) : skill_damage1_1 = "" :* minimum damage caused by the use of this skill : skill_damage1_2 = "" :* maximum damage caused by the use of this skill ::pointless notes: a random number is selected between skill_damage1_1 and skill_damage1_2 Next six keys are used only if skill_damage2_1 is defined. : skill_anno2_1 = "" : skill_anno2_2 = "" : skill_anno2_3 = "" :* this section follows the same rules as skill_anno1_1 through skill_anno1_3 - look at it for questions about it's functionality. :* Using this in addition to the skill_anno1_x set adds a second attack to the skill. This set is said during part two of set attack. : skill_se2 = "" :* this references the sound effect played during the second stage of the attack. :** if you're using a sound effect included in the game (SE folder) just list it by name (ie: ero_slime2) :** if you're using a custom sound effect, reference by folder and name+extension (ie: sounds\mySound2.ogg) :*** compatible audio formats are wav, mp3 and ogg. : skill_damage2_1 = "" :* Minimum amount of damage caused by the second stage of this attack : skill_damage2_2 = "" :* Maximum amount of damage caused by the second stage of this attack Similar to above six keys, next six are used only if skill_damage3_1 is defined. : skill_anno3_1 = "" : skill_anno3_2 = "" : skill_anno3_3 = "" :* skill_anno3_1 through skill_anno3_3 work exactly the same way as skill_anno1_1 through skill_anno1_3, look at that section for the description of how it works. :* Using this set will add a third attack to this skill, meaning 3 sets of damage and a potentially much more elaborate attack method. : notes: I've got no idea what happens when you use this group without using the second group... : skill_se3 = "" :* this references the sound effect played during the third stage of the attack. :** if you're using a sound effect included in the game (SE folder) just list it by name (ie: ero_slime3) :** If you're using a custom sound effect, reference by folder and name+extension (ie: sounds\mySound3.ogg) :*** compatible audio formats are wav, mp3, and ogg : skill_damage3_1 = "" :* minimum amount of damage caused by the third stage of this attack. : skill_damage3_2 = "" :* maximum amount of damage caused by the third stage of this attack. : skill_status = "" :* type of status applied :** 1 = ecstatic :** 2 = paralysis :** 4 = surrender :** 5 = temptation :** 7 = confusion :* requires skill_kouka = "2" : skill_turn1 = "" :* status change persists (minimum) :* requires skill_kouka = "2" : skill_turn2 = "" :* status change persists (maximum) :* requires skill_kouka = "2" : tatie4 :* requires that it's a binding technique (skill_kouka = "3", "4" or "5") : skill_kousoku_anno = "" :* requires that it's a binding technique : skill_kousoku_type = "" // type of the bind :* 0 - standard bind. Hero can't attack. Must Struggle to free from. :* 1 - charged bind. You need 1 attack to free. Plus you can free with Struggle. :* 2 - special bind. You can't free with Struggle, only with Attack. :* requires that it's a binding technique. :* Added by Rogue, original MGQ always uses 0. : skill_mogaku = "" :* how much you need to struggle to break from the bind :* requires that the bind can be broken with Struggle (skill_kousoku_type = "0" or "1") : skill_mogaku_earth = "" :* how much you need to struggle using Gnome to break from the bind :* requires that the bing can be broken with Struggle : skill_mogaku_hp'' = ""' :* how much damage you need to free from a special bind. :* requires special bind (skill_kousoku_type = "2") :* Rogue's patch only. : '''skill_selx1' = "" : skill_selx2 = "" : skill_selx3 = "" :* again, these lines are displayed from the name of the monster girl. :* in the japan MGQ3 these lines are displayed only with a status or binding attacks. Rogue's patch have broken this (these lines are displayed always). :* If you only use selx1, this line will be displayed after the attack. :* if you use selx1 and selx2, selx1 will be displayed, selx2 will appear on the next line. :* if all three are used a random line is displayed. : skill_onedari1 = "" : skill_onedari2 = "" :* skill_onedari1 and skill_onedari2 are spoken when the Hero requests this skill. : skill_lose_anno1 = "" : skill_lose_anno2 = "" : skill_lose_sel1 = "" : skill_lose_sel2 = "" : skill_bukkake = "" :* This is the image file used for the orgasm / bukkake scene. : '''''skill_bukkake_spot = "1" // bukkake graphics mode. :* 0 - Overlays above the existing graphic. :* 1 - Replaces the existing graphic with a completely new one. : skill_rukalose = "" : skill_overkill = "" 'skillb1' Skillb1-skillb4 and skillc1-skillc3 are almost similar to skilla1-skilla8 and are supporting all of above keys. The only difference is 1 key: : skill_kousoku_anno0 // starting annotation :* this string is printed first at the skill start. Category:Side Stories Category:Battles Category:Tutorial Category:Battle Creation